/*
 * lib2Desa - Another 2D game library in C++
 * Copyright (C) 2009 Erivaldo Xavier de Lima Filho
 *
 * This program is free software and is distributed under GNU General Public License version 3. You can modify and/or redistribute
 * it under the terms of GPL version 3 or posterior version. This program comes with NO WARRANTY, for more details, see LICENSE,
 * or <http://www.gnu.org/licenses>.
 *
 * Contact info:
 *
 *	Erivaldo Xavier de Lima Filho, desadoc@gmail.com
 *
 */

#ifndef IGAMEOBJECT_HPP_
#define IGAMEOBJECT_HPP_

#include <string>

#ifndef _NO_NAMESPACE
namespace lib2Desa {
#endif

class IGameObject : public GameElement, public IEventListener
{
	public:

		virtual ~IGameObject(void) = 0;

		virtual void set_animation(const std::string& key, const shared_ptr<Animation>& ani) = 0;
		virtual shared_ptr<Animation> get_animation(const std::string& key) const = 0;
		virtual bool is_animation_enabled(const std::string& key) const = 0;
		virtual void enable_animation(const std::string& key, bool enable) = 0;
};

IGameObject::~IGameObject(void)
{

}

#ifndef _NO_NAMESPACE
}
#endif

#endif /* IGAMEOBJECT_HPP_ */
